package ioperations;

import book.BookList;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 姚东名
 * Date: 2024-06-22
 * Time: 9:59
 */
public interface IOperation {
    void work(BookList bookList);
}
/*
`IOperation`接口定义了一个`work`方法，该方法接受一个`BookList`参数。基于这个接口，有多个实现类，每个类实现了`work`方法以执行不同的操作。以下是这些实现类及其`work`方法之间的逻辑关系简短分析：

1. **ExitOperation**：
   - 逻辑关系：当调用其`work`方法时，输出退出系统的提示并立即终止程序。这是一个简单的退出操作，不涉及与`BookList`的复杂交互。

2. **FindOperation**：
   - 逻辑关系：其`work`方法允许用户输入书名，并在`BookList`中查找该书。如果找到，则展示书籍信息；否则，告知用户未找到。这是一个搜索操作，依赖于`BookList`提供的数据结构来检索信息。

3. **ReturnOperation**：
   - 逻辑关系：此类的`work`方法处理书籍归还。用户输入书名，方法在`BookList`中查找该书，并检查其借阅状态。如果书籍处于被借状态，则将其标记为未借出。这是一个更新操作，修改了`BookList`中书籍的状态。

4. **ShowOperation**：
   - 逻辑关系：这个类的`work`方法简单地遍历`BookList`，并展示其中的所有书籍信息。这是一个只读操作，不涉及对`BookList`的修改。

综上所述，这些实现类通过`IOperation`接口的`work`方法与`BookList`进行交互，执行不同的操作，如退出、查找、归还和展示书籍。它们之间的共同点是都依赖于`BookList`数据结构，但每个类对`BookList`的操作方式和目的是不同的。这些操作涵盖了图书馆管理系统中的基本功能，从简单的信息展示到书籍状态的更新。
 */